/**
 * 
 */
package puzzle.nurikabe.view.swing;

import puzzle.common.loader.AbstractLoader;
import puzzle.common.loader.AbstractProblemDictionary;
import puzzle.common.solver.AbstractSolver;
import puzzle.common.view.swing.AbstractPuzzleViewPanel;
import puzzle.common.view.swing.PuzzleSolverAppMetadata;
import puzzle.nurikabe.data.NurikabeBoard;
import puzzle.nurikabe.loader.NurikabeLoader;
import puzzle.nurikabe.problem.NurikabeProblemDictionary;
import puzzle.nurikabe.solver.NurikabeSolver;

public class NurikabeSolverAppMetadata implements PuzzleSolverAppMetadata<NurikabeBoard> {
	public AbstractProblemDictionary createBuiltinProblemDictionary() {
		return new NurikabeProblemDictionary();
	}

	public AbstractLoader<NurikabeBoard> createLoader() {
		return new NurikabeLoader();
	}

	public AbstractPuzzleViewPanel<NurikabeBoard> createPuzzleViewPanel() {
		return new NurikabeViewPanel();
	}

	public AbstractSolver<NurikabeBoard, ?, ?> createSolver() {
		return new NurikabeSolver();
	}

	public String getTitle() {
		return "Nurikabe Solver 1.0";
	}
}